<?php
namespace Admin\Controller;
use Think\Controller;
use Think\Auth;//需要引入
class CommonController extends Controller {
    //自定义后台公共类
    //在自定义的公共类里面，新建一个构造方法，说明重写了父类的构造方法。
    //而父类的构造方法里面还有一些初始化，如果重写了会导致初始化不能使用，
    //这样就不能使用TP了。因此：要调用父类的构造函数
    // function __construct(){
    //     parent::__construct();
    // }

    //或者使用TP提供的内置构造函数
    function _initialize(){

        // print_r(session('admin_user'));die;

        //权限验证：Think/Auth.class.php
        $auto=new Auth;
        // var_dump( $auto);die;
        // 组装路径
        $rules='Admin/'.CONTROLLER_NAME.'/'.ACTION_NAME;
        //把要验证的用户和规则传进check()里面
        // if (!$auto->check($rules,$_SESSION['admin_user']['id'])) {
        //     $this->error('您没有权限访问');die;
        // }



        //获取自定义导航栏数据
        //查询多条
        // $top_nav=D('nav')->where('pid=0')->select();//先查询顶级导航
        // // print_r($top_nav);die;
        // $this->assign('top_nav', $top_nav);

        // //查询子级
        // $child_nav=D('nav')->where('pid!=0')->select();//先查询顶级导航
        // // print_r($child_nav);die;
        // $this->assign('child_nav', $child_nav);


        $top_nav=D('rule')->where('pid=0')->select();//先查询顶级导航
        // print_r($top_nav);die;
        $this->assign('top_nav', $top_nav);

        //查询子级
        $child_nav=D('rule')->where('pid!=0')->select();//先查询顶级导航
        // print_r($child_nav);die;
        $this->assign('child_nav', $child_nav);


        //动态实例化类对象
        // ECHO CONTROLLER_NAME;DIE;
        // 如：可以用$this->Model替换$a=D('a')中的$a，即不用实例化：$a=D('a')
        // 在类当中，属性是属于全局变量的，可以在任何地方使用
        // CONTROLLER_NAME 获取控制层名称
        // $this->Model=D(CONTROLLER_NAME);

        $web=array('index','logout');
        if (!in_array(strtolower(CONTROLLER_NAME),$web)) {
          $this->Model=D(CONTROLLER_NAME);
        }

    }
}